#pragma once

#include "Define.h"
#include "Core/Events/Event.h"
#include "Core/Timestep.h"

namespace Origin
{
    class ORIGIN_API Layer
    {
    public:
        Layer(const std::string& name);
        virtual ~Layer() = default;

        virtual void OnEvent(Event& event) { }
        virtual void OnUpdate(Timestep timestep) { }

        virtual void OnAttach() { }
        virtual void OnDetach() { }
        virtual void OnImGuiRender() { }

    private:
        std::string _debugName;
    };
}
